﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Tibet.Logica.Comandos;
using Tibet.Logica.Comandos.ComandoAdministracionProyecto;
using Tibet.Logica.FabricaLogica;
using Tibet.Entidades;
using Tibet.GUI.Presentador;
using Tibet.GUI.Contrato;

namespace Tibet.GUI.Vista
{
    public partial class ArchivarProyecto : System.Web.UI.Page,IArchivarProyecto
    {
       
        public GridView GridViewArchivarProyecto
        {
            get { return gridViewArchivarProyecto; }
            set { gridViewArchivarProyecto = value; }

        }

        public Label NombreProyecto
        {
            get { return nombreProyecto; }
            set { nombreProyecto = value; }
        }

        public Label NombreCliente
        {
            get { return nombreCliente; }
            set { nombreCliente = value; }
        }

        public Label NombrePerfilReglas
        {
            get { return nombrePerfilReglas; }
            set { nombrePerfilReglas = value; }
        }

        public Label NombrePerfilMetricas
        {
            get { return nombrePerfilMetricas; }
            set { nombrePerfilMetricas = value; }
        }

        public Label Dias
        {
            get { return dias; }
            set { dias = value; }
        }

        public Label RutaProyecto
        {
            get { return rutaProyecto; }
            set { rutaProyecto = value; }
        }

        public Panel PanelDesarrolladores
        {
            get { return panelDesarrolladores; }
            set { panelDesarrolladores = value; }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack) // If page loads for first time
            {
                PresentadorArchivarProyecto _presentador = new PresentadorArchivarProyecto(this);
                _presentador.ConsultarProyectosActivos();
                tablaDatos.Visible = false;
                tablaProyecto.Visible = false;
                tablaProyecto2.Visible = false;
            }

        }
        protected void GridViewArchivarProyecto_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridViewArchivarProyecto.PageIndex = e.NewPageIndex;
        }

        protected void GridViewArchivarProyecto_SelectedIndexChanged(object sender, EventArgs e)
        {

            tablaDatos.Visible = true;
            tablaProyecto.Visible = true;
            tablaProyecto2.Visible = true;
            PresentadorArchivarProyecto _presentador = new PresentadorArchivarProyecto(this);
            int id = Convert.ToInt32(GridViewArchivarProyecto.DataKeys[GridViewArchivarProyecto.SelectedIndex].Values["Id"].ToString());
            _presentador.ConsultarProyectoPorId(id);
            _presentador.ConsultarTodosDesarrolladores(id);
            id = Convert.ToInt32(gridViewArchivarProyecto.DataKeys[gridViewArchivarProyecto.SelectedIndex].Values["IdCliente"].ToString());
            _presentador.ConsultarClientePorId(id);
            id = Convert.ToInt32(gridViewArchivarProyecto.DataKeys[gridViewArchivarProyecto.SelectedIndex].Values["IdPerfilMetrica"].ToString());
            _presentador.ConsultarPerfilMetricaPorId(id);
            id = Convert.ToInt32(gridViewArchivarProyecto.DataKeys[gridViewArchivarProyecto.SelectedIndex].Values["IdPerfilRegla"].ToString());
            _presentador.ConsultarPerfilReglaPorId(id);
        }

        protected void botonArchivar_Click(object sender, EventArgs e)
        {
            foreach (GridViewRow row in gridViewArchivarProyecto.Rows)
            {
                if (((CheckBox)row.FindControl("CheckBoxArchivarProyecto")).Checked)
                {
                    PresentadorArchivarProyecto pupu = new PresentadorArchivarProyecto(this);
                    int id = Convert.ToInt32(gridViewArchivarProyecto.DataKeys[row.RowIndex].Values[0]);
                    pupu.ArchivarProyecto(id);
                    pupu.InsertarFechaArchivada(id);
                    
                }
            }
            Response.Redirect("ArchivarProyecto.aspx");
        }

        protected void SelectAll(object sender, EventArgs e)
        {
            foreach (GridViewRow row in gridViewArchivarProyecto.Rows)
            {
                ((CheckBox)row.FindControl("CheckBoxArchivarProyecto")).Checked = true;

            }
        }
    }
}